package cn.wuxing.mediation.system.service.impl;

import java.util.List;

import cn.wuxing.mediation.common.core.domain.entity.SysDictData;
import cn.wuxing.mediation.system.domain.SysDisputeType;
import cn.wuxing.mediation.system.mapper.SysDictDataMapper;
import cn.wuxing.mediation.system.mapper.SysDictTypeMapper;
import cn.wuxing.mediation.system.mapper.SysDisputeTypeMapper;
import cn.wuxing.mediation.system.service.ISDisputeTypeService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 【请填写功能名称】Service业务层处理
 *
 * @author mediation
 * @date 2024-09-26
 */
@Service
public class SysDisputeTypeServiceImpl implements ISDisputeTypeService
{
    @Resource
    private SysDisputeTypeMapper sysDisputeTypeMapper;

    @Resource
    private SysDictDataMapper sysDictDataMapper;
    /**
     * 查询【请填写功能名称】
     *
     * @param disputeId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public SysDisputeType selectDisputeTypeByDisputeId(Long disputeId)
    {
        return sysDisputeTypeMapper.selectDisputeTypeByDisputeId(disputeId);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param sysDisputeType 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<SysDisputeType> selectDisputeTypeList(SysDisputeType sysDisputeType)
    {
        return sysDisputeTypeMapper.selectDisputeTypeList(sysDisputeType);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param sysDisputeType 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertDisputeType(SysDisputeType sysDisputeType)
    {
        sysDisputeTypeMapper.insertDisputeType(sysDisputeType);
        System.out.println(sysDisputeType);
        SysDictData sysDictData = new SysDictData();
        if(sysDisputeType.getEventType().equals("0")){
            List<SysDictData> dataList = sysDictDataMapper.selectDictDataByType("bus_disputes_type");
            sysDictData.setDictSort((long) dataList.size());//排序
            sysDictData.setDictType("bus_disputes_type");//类型
            sysDictData.setRemark(sysDisputeType.getDisputeDescription());//描述
            sysDictData.setStatus(sysDisputeType.getDisputeStatus());//状态
            sysDictData.setDictLabel(sysDisputeType.getDisputeName());//类型名称
            sysDictData.setDictValue(String.valueOf(sysDisputeType.getDisputeId()));//值
            sysDictData.setCreateTime(sysDisputeType.getCreateTime());//创建时间
            sysDictData.setCreateBy(sysDisputeType.getCreateBy());//修改时间
        }else if(sysDisputeType.getEventType().equals("1")){
            List<SysDictData> dataList = sysDictDataMapper.selectDictDataByType("bus_disputes_pre_type");
            sysDictData.setDictSort((long) dataList.size());//排序
            sysDictData.setDictType("bus_disputes_pre_type");//类型
            sysDictData.setRemark(sysDisputeType.getDisputeDescription());//描述
            sysDictData.setStatus(sysDisputeType.getDisputeStatus());//状态
            sysDictData.setDictLabel(sysDisputeType.getDisputeName());//类型名称
            sysDictData.setDictValue(String.valueOf(sysDisputeType.getDisputeId()));//值
            sysDictData.setCreateTime(sysDisputeType.getCreateTime());//创建时间
            sysDictData.setCreateBy(sysDisputeType.getCreateBy());//修改时间
        }
        return sysDictDataMapper.insertDictData(sysDictData);
    }

    /**
     * 修改【请填写功能名称】
     *
     * @param sysDisputeType 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateDisputeType(SysDisputeType sysDisputeType)
    {
        sysDisputeTypeMapper.updateDisputeType(sysDisputeType);
        SysDictData sysDictData=null;
        if(sysDisputeType.getEventType().equals("0")){
            sysDictData=sysDictDataMapper.selectDictDataByTypeAndValue("bus_disputes_type",
                    String.valueOf(sysDisputeType.getDisputeId()));
            sysDictData.setRemark(sysDisputeType.getDisputeDescription());//描述
            sysDictData.setStatus(sysDisputeType.getDisputeStatus());//状态
            sysDictData.setDictLabel(sysDisputeType.getDisputeName());//类型名称
            sysDictData.setCreateBy(sysDisputeType.getCreateBy());//修改时间
        }else if(sysDisputeType.getEventType().equals("1")){
            sysDictData=sysDictDataMapper.selectDictDataByTypeAndValue("bus_disputes_pre_type",
                    String.valueOf(sysDisputeType.getDisputeId()));
            sysDictData.setRemark(sysDisputeType.getDisputeDescription());//描述
            sysDictData.setStatus(sysDisputeType.getDisputeStatus());//状态
            sysDictData.setDictLabel(sysDisputeType.getDisputeName());//类型名称
            sysDictData.setCreateBy(sysDisputeType.getCreateBy());//修改时间
        }

        return sysDictDataMapper.updateDictData(sysDictData);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param disputeIds 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteDisputeTypeByDisputeIds(Long[] disputeIds)
    {
        return sysDisputeTypeMapper.deleteDisputeTypeByDisputeIds(disputeIds);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param disputeId 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteDisputeTypeByDisputeId(Long disputeId)
    {
        SysDisputeType sysDisputeType = sysDisputeTypeMapper.selectDisputeTypeByDisputeId(disputeId);
        sysDisputeTypeMapper.deleteDisputeTypeByDisputeId(disputeId);
        int i=0;
        if(sysDisputeType.getEventType().equals("0")){
            i=sysDictDataMapper.deleteDictDataByTypeAndValue("bus_disputes_type",
                    String.valueOf(sysDisputeType.getDisputeId()));
        }else if(sysDisputeType.getEventType().equals("1")){
            i=sysDictDataMapper.deleteDictDataByTypeAndValue("bus_disputes_pre_type",
                    String.valueOf(sysDisputeType.getDisputeId()));
        }
        return i;
    }
}
